#ifndef DEVICESMEMPOOL_H_INCLUDED
#define DEVICESMEMPOOL_H_INCLUDED



/* 字节对齐（至少要4字节对齐） */
#define MEM_POOL_ROUNDUP_VALUE   4
/* 使x对n字节对齐 */
#define memPoolRoundUp(x, n) (((x) + (n) - 1) & (~((n) - 1)))


/* 模拟内存池块大小 */
#define DEVICES_MEM_POOL_BLOCK_SIZE     64
/* 模拟内存池块数量 */
#define DEVICES_MEM_POOL_BLOCK_COUNT    32


typedef struct MemPoolStruct{
    struct MemPoolStruct *pPrevious;
    struct MemPoolStruct *pNext;
}MemPoolType;


/* 内存池空闲空闲链表 */
extern MemPoolType g_typeMemPoolList;


void vMemPoolInit(void);
void *pvMemPoolMalloc(MemPoolType *ptypeMemPoolHead);
void vMemPoolFree(MemPoolType *ptypeMemPoolHead, void *pvMemAddr);


#endif // DEVICESMEMPOOL_H_INCLUDED
